﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Net;
using System.Net.Mail;
using System.Text;
using System.Windows.Forms;
using Lib.Utils;

namespace Lib.Lic
{
    public partial class RegInfo : DevExpress.XtraEditors.XtraForm
    {
        public RegInfo()
        {
            InitializeComponent();
        }

        private void btGen_Click(object sender, EventArgs e)
        {
            if (Is.IsNullOrEmpty(txtName.Text))
            {
                MessageBox.Show("Vui lòng nhập tên khách hàng trước khi lấy mã.", "Thông báo.", MessageBoxButtons.OK,
                    MessageBoxIcon.Error);
                return;
            }
            if (Is.IsNullOrEmpty(txtAdd.Text))
            {
                MessageBox.Show("Vui lòng nhập địa chỉ khách hàng trước khi lấy mã.", "Thông báo.", MessageBoxButtons.OK,
                    MessageBoxIcon.Error);
                return;
            }
            if (Is.IsNullOrEmpty(txtPhone.Text))
            {
                MessageBox.Show("Vui lòng nhập điện thoại liên hệ trước khi lấy mã.", "Thông báo.", MessageBoxButtons.OK,
                    MessageBoxIcon.Error);
                return;
            }
            string str = "";
            str = txtName.Text + ((char)35).ToString() + txtAdd.Text + ((char)35).ToString() + txtPhone.Text + ((char)35).ToString();
            using (Licenses _l = new Licenses())
            {
                str += _l.GetCPUId();
            }
            txtEnc.Text = Test.GetTest(str, true);
        }

        private void btSend_Click(object sender, EventArgs e)
        {
            this.Cursor = Cursors.WaitCursor;
            try
            {
                SmtpClient client = new SmtpClient(Infos.Smtp, Cvert.ToInt32(Infos.Port, 0));

                client.Credentials = new NetworkCredential(Infos.Email, Infos.EUnlock);
                client.EnableSsl = true;

                using (MailMessage message = new MailMessage())
                {
                    // make up message
                    message.From = new MailAddress(Infos.Email);
                    message.To.Add("contacts.ssoft@gmail.com");
                    message.Subject = "R/r: " + txtName.Text;
                    message.Body = txtEmail.Text + "\r\n\r\n" + txtEnc.Text;

                    // send message
                    client.Send(message);
                }

                MessageBox.Show("Một email đã được gửi tới nhà cung cấp.\nVui lòng chờ nhà cung cấp gửi lại bạn đoạn mã kích hoạt.", "Thông báo.",
                    MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                this.Cursor = Cursors.Default;
            }
        }

        private void btClose_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        protected override bool  ProcessCmdKey(ref Message msg, Keys keyData)
        {
            if(keyData==Keys.Escape)
                this.Close();
 	        return base.ProcessCmdKey(ref msg, keyData);
        }

        private void txtEnc_TextChanged(object sender, EventArgs e)
        {
            btSend.Enabled = (txtEnc.Text.Length == 0) ? false : true;
        }

        private void RegI_Load(object sender, EventArgs e)
        {
            if (Lib.Data.ConnInfo.IsServer)
                btGen.Enabled = true;
        }
    }
}
